<?php
/**
 * 案件管理模块路由配置
 * 路由规范化完成标记 - 已按照ROUTE_STANDARDIZATION_PLAN.md统一为/api前缀路由
 */

// +----------------------------------------------------------------------
// | 系统管理模块路由
// +----------------------------------------------------------------------

declare (strict_types = 1);

use think\facade\Route;

// 案件相关路由 - 规范化路由格式：api/lawcase/资源名称/操作
Route::group('api/lawcase', function () {
    // 案件资源
    Route::group('/cases', function () {
        Route::get('/list', 'lawcase.Lawcase/list');              // 查看案件列表
        Route::get('/view', 'lawcase.Lawcase/view');              // 查看单个案件信息
        Route::post('/add', 'lawcase.Lawcase/add');               // 新增案件
        Route::put('/edit', 'lawcase.Lawcase/edit');              // 编辑案件
        Route::delete('/del', 'lawcase.Lawcase/del');             // 删除案件（软删除）
        Route::post('/suspend', 'lawcase.Lawcase/suspend');      // 案件挂起/取消挂起
        Route::get('/get_all_lawyers', 'lawcase.Lawcase/get_all_lawyers'); // 获取所有在职律师列表
        Route::get('/get_lawyers', 'lawcase.Lawcase/get_lawyers'); // 获取案件关联律师列表
        Route::post('/unlink_lawyer', 'lawcase.Lawcase/unlink_lawyer'); // 解除律师关联
        Route::get('/export', 'lawcase.Lawcase/export');          // 导出案件列表
        
        // 合同相关路由
        Route::get('/get_available_contracts', 'lawcase.Lawcase/get_available_contracts'); // 获取可关联的合同列表
        Route::post('/link_contract', 'lawcase.Lawcase/link_contract'); // 关联案件与合同
        Route::post('/unlink_contract', 'lawcase.Lawcase/unlink_contract'); // 取消案件与合同的关联
        Route::get('/court_schedule_list', 'lawcase.Lawcase/court_schedule_list'); // 获取案件开庭时间表
    });

    // 案件当事人资源
    Route::group('/parties', function () {
        Route::get('/list', 'lawcase.Party/list');                // 查看案件当事人列表
        Route::get('/view', 'lawcase.Party/view');                // 查看单个案件当事人信息
        Route::post('/add', 'lawcase.Party/add');                 // 新增案件当事人
        Route::put('/edit', 'lawcase.Party/edit');                // 编辑案件当事人
        Route::delete('/del', 'lawcase.Party/del');               // 删除案件当事人（软删除）
        Route::post('/unlink', 'lawcase.Party/unlink');           // 解除当事人关联
        Route::get('/get_parties_by_contract', 'lawcase.Party/get_parties_by_contract'); // 根据合同ID获取相关当事人
        Route::get('/get_related_cases', 'lawcase.Party/get_related_cases'); // 根据当事人ID获取相关案件
    });

    // 案件进度资源
    Route::group('/progresses', function () {
        Route::get('/list', 'lawcase.Progress/list');             // 查看案件进度列表
        Route::get('/view', 'lawcase.Progress/view');             // 查看单个案件进度信息
        Route::post('/add', 'lawcase.Progress/add');              // 新增案件进度
        Route::put('/edit', 'lawcase.Progress/edit');             // 编辑案件进度
        Route::delete('/del', 'lawcase.Progress/delete');            // 删除案件进度（软删除）
    });

    // 案件文档资源
    Route::group('/casedocs', function () {
        Route::get('/list', 'lawcase.Casedoc/list');              // 查看案件文档列表
        Route::get('/view', 'lawcase.Casedoc/view');              // 查看单个案件文档信息
        Route::post('/add', 'lawcase.Casedoc/add');               // 新增案件文档
        Route::put('/edit', 'lawcase.Casedoc/edit');              // 编辑案件文档
        Route::delete('/del', 'lawcase.Casedoc/delete');          // 删除案件文档（软删除）
        Route::get('/download', 'lawcase.Casedoc/download');      // 下载案件文档文件
        Route::get('/preview', 'lawcase.Casedoc/preview');        // 预览案件文档文件
    });
    
    // 案件文档下载路由（兼容旧路由）
    // Route::get('/casedoc/download', 'lawcase.Casedoc/download'); // 下载案件文档文件

    // 案件节点类型资源
    Route::group('/nodetypes', function () {
        Route::get('/list', 'lawcase.NodeType/list');             // 查看案件节点类型列表
        Route::get('/view', 'lawcase.NodeType/view');             // 查看单个案件节点类型信息
        Route::post('/add', 'lawcase.NodeType/add');              // 新增案件节点类型
        Route::put('/edit', 'lawcase.NodeType/edit');             // 编辑案件节点类型
        Route::delete('/del', 'lawcase.NodeType/delete');         // 删除案件节点类型（软删除）
        Route::post('/sort', 'lawcase.NodeType/sort');            // 更新节点类型排序
    });

    // 法院资源
    Route::group('/courts', function () {
        Route::get('/list', 'lawcase.Court/list');                // 查看法院列表
        Route::get('/view', 'lawcase.Court/view');                // 查看单个法院信息
        Route::post('/add', 'lawcase.Court/add');                 // 新增法院
        Route::put('/edit', 'lawcase.Court/edit');                // 编辑法院
        Route::delete('/del', 'lawcase.Court/del');               // 删除法院（软删除）
        Route::get('/set', 'lawcase.Court/set');                  // 获取启用的法院列表（用于下拉选择）
        
        // 法院电话相关路由
        Route::get('/phone_list', 'lawcase.Court/phone_list');    // 查看法院电话列表
        Route::post('/phone_add', 'lawcase.Court/phone_add');     // 添加法院电话
        Route::put('/phone_edit', 'lawcase.Court/phone_edit');    // 编辑法院电话
        Route::delete('/phone_del', 'lawcase.Court/phone_del');   // 删除法院电话（软删除）
    });

    // 案由资源
    Route::group('/casecauses', function () {
        Route::get('/list', 'lawcase.Casecause/list');            // 查看案由列表
        Route::get('/view', 'lawcase.Casecause/view');            // 查看单个案由信息
        Route::post('/add', 'lawcase.Casecause/add');             // 新增案由
        Route::put('/edit', 'lawcase.Casecause/edit');            // 编辑案由
        Route::delete('/del', 'lawcase.Casecause/delete');        // 删除案由（软删除）
        Route::post('/sort', 'lawcase.Casecause/sort');           // 更新案由排序
        Route::get('/select_list', 'lawcase.Casecause/select_list'); // 获取案由选择列表（用于下拉选择）
        Route::get('/search', 'lawcase.Casecause/search');        // 搜索案由（用于远程搜索）
    });

    // 文档类型API
    Route::get('/get_doctype_list', 'lawcase.Api/get_doctype_list'); // 获取文档类型列表
});

// 案件管理模块路由规范化完成标记
// ROUTE_STANDARDIZATION_DONE: lawcase.php - 所有路由已统一添加/api前缀，结构优化完成